package com.example.shop.goods.service;

import com.example.shop.common.api.ServiceReturn;
import com.example.shop.goods.dto.EvaluationBrowseInfo;
import com.example.shop.goods.dto.EvaluationDetailBrowseInfo;
import com.example.shop.goods.dto.EvaluationQueryParam;
import com.example.shop.goods.enums.EvaluationType;
import com.example.shop.pojo.Order;
import org.springframework.beans.factory.annotation.Value;

import java.util.List;

public interface BrowseEvaluationService {

    /**
     * 获取指定评价id的详细评价信息
     * @param evaluationId 评价id
     * @return 返回评价详细信息
     */
    ServiceReturn<EvaluationDetailBrowseInfo> obtainDetailInfo(long evaluationId);

    /**
     * 根据条件获取评价的浏览列表
     * @param queryParam 条件
     * @return 返回评价的浏览列表
     */
    List<EvaluationBrowseInfo> obtainBrowseList(EvaluationQueryParam queryParam);

    /**
     * 获取与该评价同款式的商品的评价
     * @param goodsId 商品id
     * @param userPurchasedGoodsClass 该商品的款式名
     * @param pageIndex 页号，从1开始
     * @return 返回评价的浏览列表
     */
    List<EvaluationBrowseInfo> obtainBrowseListByGoodsClass(long goodsId,String userPurchasedGoodsClass,int pageIndex);

    /**
     * 返回指定评价类型的评价浏览列表
     * @param goodsId 商品id
     * @param evaluationType 评价类型
     * @param pageIndex 页号，从1开始
     * @return 返回评价的浏览列表
     */
    List<EvaluationBrowseInfo> obtainBrowseListByType(long goodsId, EvaluationType evaluationType,int pageIndex);

}
